<?php
use \GatewayWorker\Lib\Gateway;


class cmd_createroom extends cmdbase
{
	/*
	阿瓦隆人物角色介绍：
　　游戏阵营：
　　蓝方阵营：右上角徽章蓝色，也可解释为梅林阵营或好人阵营。
　　红方阵营：右上角违章红色，也可解释为莫德雷德阵营或坏人阵营。
　　1、好人（蓝方）人物及能力：
　　梅林：初始看见除莫德雷德外的所有坏人。
　　派西维尔：初始看见梅林和莫甘娜。
　　亚瑟的忠臣：无特殊能力好人。
	2、坏人（红方）人物及能力：
　　莫德雷德：梅林看不到他。
　　莫甘娜：假扮梅林，迷惑派西维尔。
　　奥伯伦：看不到其他坏人，其他坏人也看不到他（被孤立）。
　　刺客：在好人阵型3次任务成功后，独自决定，挑选一名可能是梅林的玩家刺杀，如选中，坏人胜利。
	*/
	public static $MaxNum = 10;
	public function onCmd($msg){
		$group_mgr = $GLOBALS['GroupMgr'];
		$group_id = $group_mgr->createMatchGroupId();

		$msg_body = new createroom_rsp();

		//client_count
		$client_count = Gateway::getClientCountByGroup($group_id);
		if($client_count > 0){
			$msg_body->ret = NetErrorCode::Error;
			$msg_body->reason = "房间服繁忙，请稍候再试!$client_count:$group_id";
			return $msg_body;
		}
		$user_id = $this->getCurUid();

		//加入组
		$group_mgr->joinGroup($group_id);

		//创建房间
		$msg_body->ret = NetErrorCode::None;
		$msg_body->group_id = $group_id;
		$msg_body->member_infos = array();
		{
			//填充数据
			$member_info = new member_info();
			$member_info->uid = $user_id;
			$member_info->name = ClientMgr::getNameByUid($user_id);
			$member_info->card_type = CardType::Invalid;//未发牌
			$member_info->support_type = SupportType::Invalid;
			$msg_body->member_infos[] = $member_info;
		}

		//存跨服数据
		$group_mgr->storeSlpMemberInfo($user_id, $group_id, CardType::Invalid, SupportType::Invalid);

 		return $msg_body;
	}

}